package com.dwy2002.user.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dwy2002.common.Result;
import com.dwy2002.pojo.dto.users.UsersPageDTO;
import com.dwy2002.pojo.po.users.Users;
import com.dwy2002.pojo.vo.users.UserinfoVO;

import java.util.List;
import java.util.Set;

/**
 * @author 杜伟毅
 * @version 1.0
 * @since 2025/03/16
 */
public interface IUserManagerService extends IService<Users> {
    /**
     * 用户分页查询分页
     *
     * @param dto 用户分页DTO
     * @author 杜伟毅
     * @since 2025/3/16 0016 15:11
     */
    Result<Page<Users>> getUsersPage(UsersPageDTO dto);

    /**
     * 批量查询关联用户
     *
     * @param ids 用户id集合
     * @author 杜伟毅
     * @since 2025/3/24 0024 20:47
     */
    List<Users> getUserBatchByIds(Set<String> ids);

    /**
     * 将用户锁定
     *
     * @param id 用户id
     * @author 杜伟毅
     * @since 2025/5/11 0011 18:44
     */
    Result<Void> lockedUser(String id);

    /**
     * 将用户解锁
     *
     * @param id 用户id
     * @author 杜伟毅
     * @since 2025/5/11 0011 18:44
     */
    Result<Void> unlockUser(String id);

    /**
     * 获取用户个人信息
     *
     * @param id 用户id
     * @author 杜伟毅
     * @since 2025/5/11 0011 23:58
     */
    Result<UserinfoVO> getUserinfo(String id);
}
